Thinking Like A Computer: Strategies For Teaching Computational Thinking To The Next Generation